package org.csmzxy.class2333;

public class shape {
    String type;
    String color;
    //构造方法
    public shape(String type,String color){
        this.type=type;
        this.color=color;
    }
    //重写equals方法
    //重写一个判断情况
    @Override
    public boolean equals(Object obj){
        //equals本身时，当然是对的
        if (this==obj){
            return true;
        }
        if(obj ==null || !(obj instanceof shape)){
            return false;
        }
        //向下转型，可使父类使用子类中的特有方法(向下转型可使‌父类引用变量‌访问子类特有方法"，而非改变父类本身)
        //在执行向下转型前，需要先执行向上转型
        //当equals的不是本身。而是相同类下的不同对象，需要对类中包含元素进行equals，如果全部相同则相同
        shape s =(shape) obj;
        return type.equals(s.type) && color.equals(s.color);
    }

    @Override
    //重写的一个打印方法，只要重写了，打印对象，则自动调用
    public String toString() {
        return "shape{" +
                "type='" + type + '\'' +
                ", color='" + color + '\'' +
                '}';
    }
}
